View Javadoc

1   package uba.db.sql.language;
2   
3   import org.apache.commons.lang.builder.EqualsBuilder;
4   import org.apache.commons.lang.builder.HashCodeBuilder;
5   
6   /***
7    * Representa una expresión que hace referencia al valor de una columna.
8    * 
9    * @version $Revision: 1.9 $
10   */
11  public class ColumnName implements ColumnReference {
12      private String columnName;
13  
14      /***
15       * Representa una referencia a una columna, en una tabla.
16       * 
17       * @param columnName
18       *            nombre de la columna.
19       */
20      public ColumnName(String columnName) {
21          this.columnName = columnName;
22      }
23  
24      /***
25       * @see java.lang.Object#equals(java.lang.Object)
26       */
27      public boolean equals(Object obj) {
28          return EqualsBuilder.reflectionEquals(this, obj);
29      }
30  
31      /***
32       * @see java.lang.Object#hashCode()
33       */
34      public int hashCode() {
35          return HashCodeBuilder.reflectionHashCode(this);
36      }
37  
38      /***
39       * @see uba.db.sql.language.SingleValue#accept(uba.db.sql.language.Visitor)
40       */
41      public void accept(Visitor visitor) {
42          visitor.visitColumnName(this);
43      }
44  
45      /***
46       * @see uba.db.sql.language.SingleValue#valueWith(uba.db.sql.language.EvaluationContext)
47       */
48      public Object valueWith(EvaluationContext context) {
49          return context.valueOf(this);
50      }
51  
52      /***
53       * Retorna el nombre de la columna como un {@link String}.
54       */
55      public String nameAsString() {
56          return columnName;
57      }
58  
59      /***
60       * <b>IMPORTANTE:</b> En java el método <i>toString()</i> debe utilizarse para 
61       * debugging solamente, para obtener el nombre de la columna utilizar el método
62       * {@link #nameAsString()}.
63       *
64       * @see java.lang.Object#toString()
65       */
66      public String toString() {
67          return columnName;
68      }
69  
70  }